(PYTHON) Day - 13 Math(2)

Reference

  • 문제 출처 - HackerRank
  • 파이썬 연습 - Practice - Python

개인적인 생각과 상상으로 작성한 내용들이 포함되어 있습니다
문제를 풀고 Discussion Tab을 참고하며 코드 스타일을 개선하려고 노력하고자 합니다


HackerRank


Math


Find Angle MBC


문제 : AB, BC의 길이가 주어졌을 때 ∠MBC 의 각도를 구하는 문제(점 M은 빗변 AC의 정중앙이다)
입력 : 변 AB의 길이; 변 BC의 길이;
출력 : ∠MBC 의 각도 (정수로 반올림)

10
10

45°

점 M이 직삼각형 ABC에서 빗변 AC의 중앙이기 때문에 작은 이등변 삼각형이 생기고 각 ∠MBC는 각 ∠MCB와 같다
즉 ∠MCB=∠ACB로 구한다

import math
AB = float(input())
BC = float(input())

print(str(int(round(math.degrees(math.atan2(AB, BC)))))+'°')

Triangle Quest 2


문제 : 양수 N이 주어졌을 때, N까지 증가하는 palindromic(회문) triangle을 출력하는 문제(단, 2줄 이내로 코드를 작성해야함)
입력 : 양수 N;
출력 : palindromic triangle 형태로 출력
참고 : Demlo Number

5

1
121
12321
1234321
123454321

for문 하나만 사용하라고 하며(only 1 for is allowed) 에러를 발생한다

for i in range(1,int(input())+1):
print(_[k for k in range(1, i+1)], _[k for k in range(i-1, 0, -1)], sep='')

1 = 1
11 _ 11 = 121
111 _ 111 = 12321
1111 * 1111 = 1234321

for i in range(1,int(input())+1):
print(((10**i -1 )//9)**2)

Mod Divmod


문제 : 두개의 정수 a, b가 주어졌을 때 몫과 나머지를 출력하는 문제
입력 : 정수 a; 정수 b
출력 : 몫(a//b); 나머지(a%b); 몫과 나머지(a//b, a%b)

177
10

17
7
(17, 7)

a = int(input())
b = int(input())

print(a//b)
print(a%b)
print(divmod(a, b))

조금더 짧게

a = divmod(int(input()), int(input()))
print(\*a, a, sep='\n')

Power - Mod Power


문제 : 숫자 a, b, c가 주어졌을 때 a의 b제곱 값과 이를 c로 나눈 나머지를 구하는 문제
입력 : a; b; c
출력 : a의 b제곱; a ** b % c;

pow() 함수를 사용하는 매우 간단한 문제

a, b, m = int(input()),int(input()), int(input())
print(pow(a,b),pow(a,b,m),sep='\n')

Integers Come In All Sizes


문제 : 실수 a, b, c, d가 주어졌을 때 a^b + c^d의 값을 구하는 문제
입력 : 실수 a; b; c; d
출력 : ab + cd의 값

9
29
7
27

4710194409608608369201743232

a, b, c, d = [int(input()) for _ in '1234']
print(a**b + c**d)

Triangle Quest


문제 : 양수 N이 주어졌을 때 1에서 N까지 증가하는 numerical triangle을 출력하는 문제
입력 : N;
출력 : numerical triangle

5

1
22
333
4444

for i in range(1,int(input())): #More than 2 lines will result in 0 score. Do not leave a blank line also
print((10\**(i)//9)*i)